package com.google.ar.sceneform.samples.hellosceneform.hosh.model.adapter

import android.widget.ImageView
import com.alibaba.fastjson.JSON
import com.google.ar.sceneform.rendering.ViewRenderable
import com.google.ar.sceneform.samples.hellosceneform.R
import com.google.ar.sceneform.samples.hellosceneform.hosh.displayinfo.ItemContent
import com.google.ar.sceneform.samples.hellosceneform.hosh.displayinfo.Postion
import kotlinx.android.synthetic.main.cylinder_item_layout.view.*
import java.util.*

/**
 * 网格元素内容内容填充适配器
 */
class ObjCylinderAdapter(content : MutableMap<String, ItemContent>) {
    // 网格元素使用的布局
    // 当前的布局只有一个 ImageView
    var layoutId = R.layout.cylinder_item_layout
    // 网格元素显示的数据内容集合
    // 当前使用的 key 为 Postion 做了 JSON 处理的字符串，可根据实际情况自行处理
    // value 为要显示的数据内容
    var content : MutableMap<String, ItemContent> = HashMap()
        get() = field
        set(value) {
            if (value == null) {
                field = HashMap()
            } else {
                field = value
            }
        }

    init {
        this.content = content
    }

    // 为每一个网格元素添加内容
    fun getCellViewRenderable(viewRenderable : ViewRenderable, row : Int, column : Int) : ViewRenderable{
        var tmp = viewRenderable

        // 当对应的网格位置存在数据内容的时候，为 ImageView 加载图片资源
        var itemContent = content.get(JSON.toJSONString(Postion(row, column)))
        var img = tmp.view.img as ImageView
        if (itemContent != null) {
            img.setImageResource(itemContent.image!!)
        }
        return tmp
    }

}